↳ Prolog
↳ PrologToPiTRSProof
dis_in(B) → U3(B, con_in(B))
con_in(B) → U6(B, bool_in(B))
bool_in(1) → bool_out(1)
bool_in(0) → bool_out(0)
U6(B, bool_out(B)) → con_out(B)
con_in(and(B1, B2)) → U4(B1, B2, dis_in(B1))
dis_in(or(B1, B2)) → U1(B1, B2, con_in(B1))
U1(B1, B2, con_out(B1)) → U2(B1, B2, dis_in(B2))
U2(B1, B2, dis_out(B2)) → dis_out(or(B1, B2))
U4(B1, B2, dis_out(B1)) → U5(B1, B2, con_in(B2))
U5(B1, B2, con_out(B2)) → con_out(and(B1, B2))
U3(B, con_out(B)) → dis_out(B)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
dis_in(B) → U3(B, con_in(B))
con_in(B) → U6(B, bool_in(B))
bool_in(1) → bool_out(1)
bool_in(0) → bool_out(0)
U6(B, bool_out(B)) → con_out(B)
con_in(and(B1, B2)) → U4(B1, B2, dis_in(B1))
dis_in(or(B1, B2)) → U1(B1, B2, con_in(B1))
U1(B1, B2, con_out(B1)) → U2(B1, B2, dis_in(B2))
U2(B1, B2, dis_out(B2)) → dis_out(or(B1, B2))
U4(B1, B2, dis_out(B1)) → U5(B1, B2, con_in(B2))
U5(B1, B2, con_out(B2)) → con_out(and(B1, B2))
U3(B, con_out(B)) → dis_out(B)
DIS_IN(B) → U31(B, con_in(B))
DIS_IN(B) → CON_IN(B)
CON_IN(B) → U61(B, bool_in(B))
CON_IN(B) → BOOL_IN(B)
CON_IN(and(B1, B2)) → U41(B1, B2, dis_in(B1))
CON_IN(and(B1, B2)) → DIS_IN(B1)
DIS_IN(or(B1, B2)) → U11(B1, B2, con_in(B1))
DIS_IN(or(B1, B2)) → CON_IN(B1)
U11(B1, B2, con_out(B1)) → U21(B1, B2, dis_in(B2))
U11(B1, B2, con_out(B1)) → DIS_IN(B2)
U41(B1, B2, dis_out(B1)) → U51(B1, B2, con_in(B2))
U41(B1, B2, dis_out(B1)) → CON_IN(B2)
dis_in(B) → U3(B, con_in(B))
con_in(B) → U6(B, bool_in(B))
bool_in(1) → bool_out(1)
bool_in(0) → bool_out(0)
U6(B, bool_out(B)) → con_out(B)
con_in(and(B1, B2)) → U4(B1, B2, dis_in(B1))
dis_in(or(B1, B2)) → U1(B1, B2, con_in(B1))
U1(B1, B2, con_out(B1)) → U2(B1, B2, dis_in(B2))
U2(B1, B2, dis_out(B2)) → dis_out(or(B1, B2))
U4(B1, B2, dis_out(B1)) → U5(B1, B2, con_in(B2))
U5(B1, B2, con_out(B2)) → con_out(and(B1, B2))
U3(B, con_out(B)) → dis_out(B)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
DIS_IN(B) → U31(B, con_in(B))
DIS_IN(B) → CON_IN(B)
CON_IN(B) → U61(B, bool_in(B))
CON_IN(B) → BOOL_IN(B)
CON_IN(and(B1, B2)) → U41(B1, B2, dis_in(B1))
CON_IN(and(B1, B2)) → DIS_IN(B1)
DIS_IN(or(B1, B2)) → U11(B1, B2, con_in(B1))
DIS_IN(or(B1, B2)) → CON_IN(B1)
U11(B1, B2, con_out(B1)) → U21(B1, B2, dis_in(B2))
U11(B1, B2, con_out(B1)) → DIS_IN(B2)
U41(B1, B2, dis_out(B1)) → U51(B1, B2, con_in(B2))
U41(B1, B2, dis_out(B1)) → CON_IN(B2)
dis_in(B) → U3(B, con_in(B))
con_in(B) → U6(B, bool_in(B))
bool_in(1) → bool_out(1)
bool_in(0) → bool_out(0)
U6(B, bool_out(B)) → con_out(B)
con_in(and(B1, B2)) → U4(B1, B2, dis_in(B1))
dis_in(or(B1, B2)) → U1(B1, B2, con_in(B1))
U1(B1, B2, con_out(B1)) → U2(B1, B2, dis_in(B2))
U2(B1, B2, dis_out(B2)) → dis_out(or(B1, B2))
U4(B1, B2, dis_out(B1)) → U5(B1, B2, con_in(B2))
U5(B1, B2, con_out(B2)) → con_out(and(B1, B2))
U3(B, con_out(B)) → dis_out(B)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
DIS_IN(or(B1, B2)) → CON_IN(B1)
DIS_IN(or(B1, B2)) → U11(B1, B2, con_in(B1))
DIS_IN(B) → CON_IN(B)
U41(B1, B2, dis_out(B1)) → CON_IN(B2)
CON_IN(and(B1, B2)) → DIS_IN(B1)
U11(B1, B2, con_out(B1)) → DIS_IN(B2)
CON_IN(and(B1, B2)) → U41(B1, B2, dis_in(B1))
dis_in(B) → U3(B, con_in(B))
con_in(B) → U6(B, bool_in(B))
bool_in(1) → bool_out(1)
bool_in(0) → bool_out(0)
U6(B, bool_out(B)) → con_out(B)
con_in(and(B1, B2)) → U4(B1, B2, dis_in(B1))
dis_in(or(B1, B2)) → U1(B1, B2, con_in(B1))
U1(B1, B2, con_out(B1)) → U2(B1, B2, dis_in(B2))
U2(B1, B2, dis_out(B2)) → dis_out(or(B1, B2))
U4(B1, B2, dis_out(B1)) → U5(B1, B2, con_in(B2))
U5(B1, B2, con_out(B2)) → con_out(and(B1, B2))
U3(B, con_out(B)) → dis_out(B)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
DIS_IN(or(B1, B2)) → CON_IN(B1)
DIS_IN(B) → CON_IN(B)
DIS_IN(or(B1, B2)) → U11(B2, con_in(B1))
U11(B2, con_out) → DIS_IN(B2)
CON_IN(and(B1, B2)) → DIS_IN(B1)
U41(B2, dis_out) → CON_IN(B2)
CON_IN(and(B1, B2)) → U41(B2, dis_in(B1))
dis_in(B) → U3(con_in(B))
con_in(B) → U6(bool_in(B))
bool_in(1) → bool_out
bool_in(0) → bool_out
U6(bool_out) → con_out
con_in(and(B1, B2)) → U4(B2, dis_in(B1))
dis_in(or(B1, B2)) → U1(B2, con_in(B1))
U1(B2, con_out) → U2(dis_in(B2))
U2(dis_out) → dis_out
U4(B2, dis_out) → U5(con_in(B2))
U5(con_out) → con_out
U3(con_out) → dis_out
dis_in(x0)
con_in(x0)
bool_in(x0)
U6(x0)
U1(x0, x1)
U2(x0)
U4(x0, x1)
U5(x0)
U3(x0)
From the DPs we obtained the following set of size-change graphs: